var express = require('express');
const { query } = require('../utils/pool')
//生成JWT
const { setToken } = require('../utils/token');
const { upload } = require('../utils/tools')
var router = express.Router();

router.post('/login', async (req, res, next) => {
  const obj = req.body
  // 执行SQL命令
  try {
    var data = await query('select uname,role_id,role,description from ih_admin,ih_role where role_id=id && uname=? && upwd=?', [obj.uname, obj.upwd])
  } catch (err) {
    return next(err)
  }

  console.log(data)
  //判断用户提交的登录信息是否正确
  if (data.length === 0) {
    return res.send({ code: 400, msg: '登录失败' })
  }
  //登录成功之后加密用户的信息对象——为了保证安全性 不要将密码进行加密
  //否则token泄露 你的密码也泄露了
  //用户信息对象 密钥 有效期
  const tokenStr = setToken({ user: req.body.uname, id: data[0].uid }, '600s');
  //登录成功生成jwt字符串
  res.send({
    code: 200,
    msg: '登录成功',
    role: data[0].role,
    token: tokenStr //要发送给客户端的token字符串
  }); //服务器发送给客户端状态
});

//有权限
router.get('/getinfo', (req, res) => {
  console.log(req.auth);
  res.send({
    code: 200,
    message: '获取用户信息成功',
    // 获得解密后的用户信息 通过req.auth 获取。相当于 express—jwt 6.X版本下的req.user
    data: req.auth //要发送给客户端的用户信息
  });
});

// 文件上传
// pic传递的参数名
router.post('/upload', upload().single('pic'), (req, res) => {
  res.send({  // 给前端返回的数据
    body: req.body,
    file: req.file,
    path: `http://127.0.0.1:3333${req.file.path.slice(6)}`
  });
})


module.exports = router;
